If a range goes all the way to the edge of the screen then we don't
have any way to activate autoscrolling. By adding a small region
at the ends of the range we can handle this case. This is the same
approach used in treeviews.
#define TIMEOUT_REPEAT 50
#define ZOOM_HOLD_TIME 500
#define AUTOSCROLL_FACTOR 20
+#define SCROLL_EDGE_SIZE 15
typedef struct _GtkRangeStepTimer GtkRangeStepTimer;
pos = range->priv->mouse_x;
}
- if (pos < 0)
+ if (pos < SCROLL_EDGE_SIZE)
mode = GTK_SCROLL_STEP_BACKWARD;
- else if (pos > size)
+ else if (pos > (size - SCROLL_EDGE_SIZE))
mode = GTK_SCROLL_STEP_FORWARD;
}